home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Wayzata's Best of Shareware PC/Windows 1
/
Wayzata's Best of Shareware for PC-Windows - Release 1 - Wayzata Technology (1993).iso
/
mac
/
DOS
/
DATABASE
/
SCHOP11
/
SCHEDOP.DOC
< prev
next >
Wrap
Text File
|
1993-04-09
|
25KB
|
615 lines
-----------------------------------------
SCHEDULE OPTIMIZER v1.1
by
Noel Llopis
-----------------------------------------
(c) NLL SOFT - 1993
INTRODUCTION.
So what's this SCHEDULE OPTIMIZER all about? Is it going
to solve all your problems and give you your long dreamed
schedule? No, it is not. It is going to help you a great deal
if you are debating about what classes to take or how to make
them fit in your schedule the best way possible. Instead of
spending hours and hours trying different combinations hoping
to get that other class to fit (as I certainly did!), just
enter them in SCHEDULE OPTIMIZER and let the program show you
all possibilities, and then pick the best schedule exactly the
way you would want it. How is that possible that a "dumb"
machine is going to make a "smart" choice for you? Just... read
the book, OK?
A couple things on this version of the program,
the second release. As it is right now I have concentrated all
my efforts in the inner workings of the program: the algorithms
to calculate all possible combinations, to pick the best
schedule, etc. The user interface and the presentation on the
screen could have been better, but I needed to have a working
version of this program to put my Spring '93 schedule together.
Now that I have it I will start working on a "windowed"
environment (possibly with Turbo Vision) with mouse support and
all that neat stuff. So I'd say that version 2.00 of this
program should be ready in a couple months or so. Versions 1.XX
are just in case there are any bugs that need correction... and
talking about bugs, to make the debugging process faster I will
offer a free registered version of this program to the first
person that reports any bug in the program (that is, a bug that
hasn't been reported before). So if you find any, contact me as
soon as possible.
This program was designed with the UMASS class scheduling
system in mind, but I left if general enough so it can be used
for any other university... or almost for any other thing with
a schedule involved in it. Maybe there are some options that
would come very helpfull for other class systems. If so,
please, don't hesitate to send some feedback so I will be able
to improve it for future versions.
And finally a word about Shareware (is there really
anybody that still doesn't know what Shareware is?). This
program is Shareware. You can copy and give this program freely
(we are talking about the UNREGISTERED version) and try it for
as long as you want, but if you want the REGISTERED version
(=fully working version) you will have to pay a small fee and I
will send it to you. Both versions are almost identical, the
only differences being that in the unregistered version you
can't save the classes and you can't compute the best schedule.
So if after what you see here you think you might seriously
want to use this program, I would urge you to register it. By
registering it you will not only get the fully functional
version, but you will have the right to technical support, you
will be included in our mailing list and you will periodically
receive the new releases from NLL SOFT. By the way, that
REGISTERED version will NOT be Shareware, and any copies you
make of it will be illegal (and they will have you name and
address in it... so you have interest as not to let anybody
"accidentally" get a copy of it |) But enough of that, just
make sure to read the FORM.DOC if you are interested in getting
the full version of the program.
That's about all I had to say for the introduction. The
rest of this file will be a quick description of all the
options in the program and tips on how to get most out of
SCHEDULE OPTIMIZER v1.1. This manual, again, might be a bit
short, but time is pressing. I will try to improve all this by
the second version. In the meantime, for any comments,
questions, or suggestions you can contact me at any of
the addresses below. I really hope you find this program
as usefull as I did.
Thanks to Holly Ordway for testing the program and helping me
solve some 'technical difficulties'.
NLL SOFT
606-B Brown. UMASS
Amherst, MA 01003
(413) 546 1143
or on the internet (I check my mail several times a day!):
nllopis@umass.ecs.edu
Noel Llopis
NLL SOFT - 1993
MAIN MENU.
This is almost just like any plain old database. The
actual number of classes in memory is displayed just above the
main menu.
The options you have are:
[1]. Enter a new class. Simply asks you for the data for a
new class entry. The format of any entry is best
described with an example:
Departament and number : CHEM112
Class description : General Chemistry II
Number of credits : 4
Class this one must go with :
Is this a class you must include in your final
schedule (Y/N)? Y
1.
Section : 1
Starting time : 9:05AM
Ending time : 9:55AM
Days of the week : MWF
Schedule # : 114374
2.
.
.
.
Whenever you are done entering the different times
a class is offered at, simply leave the section number
blank. That will return you to the main menu and will add
the class to the database.
When you are asked for the "class this one must go with",
you have to enter the class department and number the way you
did before, if this class must be taken together with some
other. The reason for this option is in case you have two classes
(say a lecture and a lab) that must be taken together or not at
all. If you simply put them both down and they are optional, the
program might choose either one of them, not necesserely both at
the time. Remember that you only refer to a class you entered
before, not at some class you are going to add later.
The question "Is this a class you must include in
your final schedule?" is made to distinguish between the
classes you have to take and the optional classes; this
way you might include 4 classes you must take and 5
classes you would like to take, and the computer will find
for you which ones of those 5 classes will make a better
schedule... but more of that later, in the section on
CALCULATE BEST SCHEDULE and HOW TO GET MOST OF SCHEDOP
v1.1.
[2]. Modify a class. The first thing this will show you is
a list of all the classes in memory at the moment, and
will allow you to enter the number of the class you want
to edit (you can press + or - to see more pages of
classes... but if you have that many you are really going
to have fun when you try to get the best schedule!).
Once you have chosen which class you want to edit,
you will be asked to edit each one of the fields of the
class entry. It will be the same as when you enter a new
class, but this time the previous values of the class you
are editing will show as the default values, so if you
don't want to change most of them simply press RETURN and
nothing will change.
It is important to note that if you set the section
number of a certain time blank and press return, that
section and all the ones following will be deleted. Again,
as soon as you enter a blank section number the editing
will be done and you will be back to the list of all the
classes.
[3]. Delete a class. You will be shown the already
falmiliar list of all the classes in memory at the moment.
To delete one simply enter its number. Use this feature
with caution since there is no recovery option (unless you
saved it before).
[4]. List all classes. Again the list of all classes will
appear on the screen. To get more information on any of
the classes just enter its number and all the data you
previously entered will be displayed (description,
credits, times offered, etc).
[5]. Files. This will bring up the directory of the
classes previously saved and a menu with options. The
directory consists of the description of 10 files. If some
of the files have not been yet saved, a line with dots
will appear instead.
The options in this file menu are very straight
forward:
[1]. Restore. This will restore the data saved in one
of the 10 files. You will be asked which one you wish
to restore. If you leave it blank or enter an
incorrect number the operation will be cancelled.
[2]. Save. With this you will be able to save any
changes or new classes you have entered. You can use
any of the 10 slots to save it. You will be asked for
a description of the information you are saving (that
will show up in the directory for future reference).
If you save it on top of an already used slot, the
actual description will be the default. Again, a
blank description or ESC will cancel the operation.
** NOTE ** : This option is only available in the
REGISTERED VERSION.
[0]. Back to main menu. Need an explanation for this?
[*]. Process schedule. This is what SCHEDULE OPTIMIZER
really is. Read the next section for full explanation.
[0]. Exit program. It will exit to DOS. If you have made
any changes since save/restore you will be prompted if you
really want to quit the program.
Note that here, as it will be the tendency all
throughout the program, 0 will always get you back to the
previous menu (or, in this case exit to DOS).
SCHEDULE PROCESSING CENTER.
This is the hard core of the program. So far it has been
like a simple database; this is where the real power of SCHEDOP
starts.
Now it will follow a description of all the options in
this part. It is intenteded to be most of a reference manual
than a tutorial on how to use it. For an explanation on how to
optimize your schedule (in the case you can't figure it out
yourself from the menus), read the next section.
[1]. Show all possible compatible schedules. It's exactly
what it says. With the classes actually loaded in memory,
the computer will try to make all possible combinations of
the classes (trying all the different times). All
combinations with no conflicts will be reported.
If you have some classes marked as optional, all
combinations with and WITHOUT them will also be reported.
All those schedule combinations will be the ones to
evaluate later to find the best schedule of all.
Once the calculation is done it will report how many
possible schedules where found and it will display them in
the output device (could be on the screen, printer or a
text file). It can show them in text or "graphic"
representation, but more of this under [4]. Settings.
Since calculating all the schedules is a time
consuming process (depends a lot on how many classes you
have), it will only be calculated once, displaying the
classes inmediately the second time you try this option.
Obviously, the preferences you defined will not affect
this at all. All schedules that do not have a time conflict
will be reported.
[2]. Show best possbile schedule. Also doesn't need much
explanation, it will calculate the best schedule based on
your preferences. Once it has found the best schedules (is
quite possible that several schedules scored the same),
they will be shown on the output device in the same way as
before.
This is even a slower process than calculating all
combinations, and the more possible schedules, the longer
it will take. Don't think the computer "froze up" or
anything, if there are still little dots being printed on
the screen... you are all set, just be a little patient.
Again, as with the previous option, it will only need to
calculate it once (luckyly!), showing the best schedules
right away after the first time. It will have to
recalculate everything if you change the preferences or
exit to the main menu, though.
** NOTE **: This option will only be available in the
REGISTERED VERSION.
[3]. Define schedule characteristics. From here you will
be able to "tell" the computer how your ideal schedule
would be. For this you will be shown the actual
preferences and given the options to modify them, restore
or save them. Whenever you save the preferences, they will
be the default next time you run the program.
The different characteristics you can change to fit
your likes are:
- Optimum number of credits.
- Importance of having that exact number of credits.*
- Importance of having less credits.*
- Importance of having more credits.*
- Importance of having a compact schedule (with not many
"wholes" in between classes that is).*
- Importance of an evenly distribution of classes - having
the same number of hours every day.*
- Preferred days to have more hours.
- Preferred days to have less hours.
- Optimum time to start classes.
- Importance of starting at that time.*
- Importance of starting before that time.*
- Importance of starting after.*
- End classes as soon as possible.
- Optimum time to end classes.
- Importance of ending classes at that time.*
- Importance of ending before that time.*
- Importance of ending after that time.*
- Take weekends into account when doing calculations.
- Times at which you prefer not to have classes and
importance of each of those times.
If you decide to modify the current preferences you
will be asked every single one of these questions. The
current values will be shown as the default ones.
The characteristics marked with an asterisk (*) above
are rating characteristics. That is, it's not an amount, a
time or a day they are asking you, but a rating. By that
you have to answer "how much would you like...?" And give
it a rating from 0 to 10. The rating scale could be
something like:
10 - YES! I would love that.
9 - Yes, it would be very good.
8 - That'd be cool.
7 - I guess that'd be OK.
6 - Hmmm.. I guess so.
5 - I really don't give a damn about that.
4 - Naaahh, why bother with that.
3 - I think I rather not.
2 - Nope, I don't like that much.
1 - No, that's really bad.
0 - NO WAY I'M GOING TO DO THAT!!!
For the rest of the questions just answer whatever
they ask you to as trully as you can. Then those
preferences you have entered will be taken into account to
decide which one of all the possible schedules is most
likely to fit all your needs.
[4]. Settings. This will bring another menu from which you
can decide how you want the output to be, and where you
want it outputted to.
[1]. Mode: Normal/Graphic/Both. Pressing this key you
will switch between the three representation modes.
The one selected at the moment is the one with the
square brakets around.
- In normal mode the list of the possible or best
schedules will be shown as the list of the classes
with the time, days and section number.
- In graphic mode the list will be a graphical
representation of the schedules as it would be drawn
in a piece of paper, with the days of the week, the
times, and the classes in the little boxes. If a
class occupies more than one box its name will appear
in the following box (that doesn't mean you have the
same class twice in a row, but that the class is two
boxes long!).
- In "both" mode, both representations will be shown,
one after the other for every schedule.
[2]. Output: Screen/Printer/File. Again, pressing
that key will switch between the three options. This
is the output device the schedules are going to be
sent to (in any mode). If the screen is selected...
(hmm.. I wonder what is going to happen!). If "file"
is selected, after the computer is done computing the
schedules you will be asked for a file name to output
the information to. A word of caution about the
printer: it will detect if the printer is on line
whenever it is going to START printing the output.
Once it is started, if you turn the printer off it
might give a runtime error (yes, remember, it was
written in Pascal). So just be a little carefull.
Also... I think it might only do LPT1 for the printer
port, that will be something to work on for version
2.xx.
[3]. Screen mode: BW80x25/80x25/80x43/80x50. This is
the screen mode when the graphical representation of
the schedule is shown on the screen. Usually the mode
80x50 will give you the best results - you can see
the most hours and more clearly spaced -, but it
requires an EGA or VGA card. If you don't have one
you won't even be able to select the two last
options, being your best mode the second one,
(default) 80x25. The first mode, BW80x25, is the same
as 80x25 but in black and white only. Is not that it
makes much difference right now, but it might in
later versions.
[4]. Graphic schedule start and end. Those are the
times to start and end drawing the graphical
representation of the schedule. The ideal would be to
have all the hours there, but what are all the hours?
The 24 hours? Somebody might only want to have it
from 9AM to 5PM for instance, or other people with
night classes might prefer to have it go from 4PM to
10PM.
Once you have selected those times the schedule
will be scaled to occupy the most screen as possible
to show all the details.
[0]. Back, back. 0 will always get you back!
[0]. Back to main menu. Here remember that whenver you go
back to the main menu and then return to the processing
center, all calculations of possible and best schedules
will have to be computed again.
And that's all for the description of the options of the
program. Now I would urge you to read the next section,
possibly the most important one, before making your final
decision on the schedule for next semester.
HOW TO GET MOST OUT OF SCHEDOP v1.1.
To make good use out of SCHEDULE OPTIMIZER v1.1 is very
important to realize a few things. Don't simply enter in all
the classes you want and ask for the best schedule, it might
turn out there's one you like better. I guess a section on
frequently asked questions would be the best thing to do now,
but since this is the first release I haven't had any "real"
questions yet (keep them coming though, OK?). So I will point
out a few tips that might be handy to keep in mind while you
are using SCHEDOP.
- The "best" computer generated schedule might not be the
"best" (!!). If this is true, why all this program? I
should explain that in a little more detail. What I mean
is that the computer will blindly take the preferences you
defined, take each one of the possible schedules and give
them a score accordingly. The one(s) with the best score
will be reported as the "best" ones. And that will always
be true. Why then shouldn't we trust it right off hand?
Because of.. human error - as our friend Hal 9000 would
say. When you entered a 7 in the rating for a compact
schedule it was translated as "multiply the compactness
score by 0.5", while you might have meant to give this
score a little more importance than that.
What to do then? First go ahead, fill the preferences
as well as you can, thinking them over and making sure
that's what you really want. Then get the best schedule.
If you like it a lot, hey, great, that's what you were
looking for. If you don't like that much, there might be
still a better one. Go back over the preferenes and give a
little more importance to that factor that you didn't
quite get in this last schedule (if there were lots of
"holes", give a little more to the compact schedule
score). Then try again and see if you get anything
different. In other words, experiment with it a bit.
If still that fails you can always go through all the
possible schedules and see if you like one of them better.
Sometimes it is impossible to make things fit the way you
like them! If you only have a few classes this might look
like a good solution, but as soon as you have a few more,
offered quite a few different times and especially if they
are optional, then you are going to have a really fun time
going through the thousands of possible combinations. Use
this as last ressource!
- Keep several different classes saved. It has proven to
me very usefull to have like 3 different files saved and
work with them. In one you might include the classes you
have to take, and in the others those classes plus groups
of classes you would like to take. That's much easier than
going through the old files adding and deleting classes.
- Is it too slow? It might be quite slow, specially if you
are using an old 8088-86. If you have a 386 or more...
just skit this section, you don't need it.
What slows this program the most is having lots of
data to process. This happens when there are lots of
classes (although people usually take no more than 10 at a
time), lots of different times the classes are offered at
or having lots of alternative classes.
A class with a lot of different alternative times is
a real slow down for the program. Just have a look at this
semester's schedule book (for the UMMies that is) and look
at ENGLWP112. 68 different lectures!! That would take
almost as long to process as to type it into the database.
The way around that is to simply not include that class in
the calculations, and once you have a good schedule worked
out, since it is offered that many times, you should be
able to easily fit it in just by looking at the times
offered. Just remember, when you answer the question
"optimum number of credits", to subtract the number of
credits of the class you will add later on.
What about lots of optional classes? That really
slows it down too. To give you an idea, the classes I
planned to have resulted in 72 different possible
schedules. When I changed two of the classes to optional
and added a couple more optional, the possible schedules
skyrocketed up to 576! Moral: keep the number of optional
classes down. No, seriously, what you might do instead is
to have several different files, each one containing all
non-optional classes and then comparing the best schedule
of each among each other and decide which one is best.
If there are enough requests I might include an
executable file in the next version with 286 code which
would make it run even faster on 286 machines or higher.
For the moment I would like to keep compatible with all
PC's (I will still include an executable for the 8088 out
there... don't worry!).
And this should do it. If you have read this manual you
should be able to use SCHEDULE OPTIMIZER v1.1 to its full
capacity. Enjoy the program and send your comments to make
better future releases.
(c) NLL SOFT - 1993